Machine learning models, such as convolutional neural networks, may be trained to perform a variety of cognitive tasks including, for example, image classification and speech recognition. For instance, a convolutional neural network may classify an image by at least processing the image through a plurality of layers including, for example, one or more convolution layers and pooling layers. Each convolution layer may apply, to the image, weights that are configured to detect the presence of various features in the image. A convolution layer that follows another convolution layer may have weights that detect more complex features than the preceding convolution layer. Meanwhile, a pooling layer may be configured remove noise from the features detected by one or more preceding convolution layers.